package editor.modelo;

import java.awt.geom.Point2D;

/**
 * Un edge es una lista ordenada de 2 puntos en el plano.
 * Pueden ser de distintos tipos, como pared o puerta
 * (dejando a futuro la posibilidad de agregar nuevos tipos).
 * @author Alejandro
 *
 */
public class Edge {
	
	public static  enum Tipo { PARED 
		{public String toString(){return "wall";}},
		PUERTA_1  /*Un tipo de puerta */
		{ public String toString(){return "door_1";}}
		}
	
	private Point2D desde;
	private Point2D hasta;
	private Tipo tipo;
	
	public Point2D getDesde() {
		return desde;
	}
	public void setDesde(Point2D desde) {
		this.desde  = desde;
	}
	public Point2D getHasta() {
		return hasta;
	}
	public void setHasta(Point2D.Float hasta) {
		this.hasta = hasta;
	}
	public Tipo getTipo() {
		return tipo;
	}
	public void setTipo(Tipo tipo) {
		this.tipo = tipo;
	}
	
	public boolean hasPoints(Point2D.Float pto1, Point2D.Float pto2){
		return (desde.equals(pto1) && hasta.equals(pto2)
				||desde.equals(pto2) && hasta.equals(pto1));
	}

}
